1. Technical Field
The present invention generally relates to a method and system for processing a data set. More particularly, the present invention relates to a method and system for encrypting or decrypting a data set so that the data set remains in the ASCII printable range.
2. Background Art
As the use of computer software becomes more prolific, the need to control its usage grows. The use of a software product is typically controlled by a license agreement between the software producer and the end-user. Traditionally, license agreements are included with the purchased product as “shrink-wrap” licenses. However, such licenses do little to prevent software piracy. Accordingly, software producers are beginning implement license agreements by exchanging license data with the end-user separately from the sale of the product.
When exchanging license data separately from the product, maintaining the integrity of the data is essential. Specifically, the license data may include a list of authorized users, which when matched with an end-user's computer system, permits the installation or execution of the product. Thus, it is vital to ensure that the license data cannot be tampered with or manipulated in such a way that would allow for the unauthorized installation/use of the software product. To prevent the license data from being read and understood, it can be encrypted prior to its use.
Encryption is well known in the art and generally is accomplished by performing an operation on a data set with a “key,” which can later be used to decrypt the data set. Heretofore, various attempts have been made at encrypting and decrypting data. However, such previous attempts fail to provide a standard format for the data set. Accordingly, as the data set is translated between computer systems having different operating systems and protocols, it can become corrupted. Such translations are especially problematic when the data set is translated outside of the ASCII printable range where many operating systems assign different values to data. In addition, previous attempts at encrypting a data set required the selection of a key of a pre-determined length. This reduces the effectiveness of the encryption in that the key length is often predictable by third parties.
In view of the above, there exists a need for a method and system for encrypting a data set so that the data set will remain in the ASCII printable range, thereby ensuring that the data set will remain valid for all operating systems, applications and protocols. Moreover, there exists a need for a method and system that does not require a key of a specific length for encryption of the data set.